/**
 * Created by Mark_ren on 2016/10/10.
 */
//引一下支持mysql的orm  sequelize模块
var Sequelize = require('sequelize');

//连接数据库及信息
var sequelize = new Sequelize(
    'tp_ccdt', // 数据库名
    'meet',   // 用户名
    'meet',   // 用户密码
    {
        'dialect': 'mysql',  // 数据库使用mysql
        'host': 'localhost', // 数据库服务器ip192.168.1.32
        'port': 3306,        // 数据库服务器端口
        'define': {
            // 字段以下划线（_）来分割（默认是驼峰命名风格）
            'underscored': true
        }
    }

);

console.log("__________________数据库连接完毕____________________");

//部门管理
var departmentModule = sequelize.define(
    'Department',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.INTEGER, 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'name': {
            'field': 'name',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'parentId': {
            'field': 'parent_id',
            'type': Sequelize.INTEGER,
            'allowNull': false
        },
        'order': {
            'field': 'order',
            'type': Sequelize.INTEGER,
            'allowNull': false
        },
        'synTime': {
            'field': 'syn_time',
            'type': Sequelize.STRING(20),
            'allowNull': false
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'department',
        timestamps: false//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)
//代表管理
var memberRespresentModule = sequelize.define(
    'memberRespresent',
    {
        'userId': {//与数据库表字段对应的模块字段
            'field': 'user_id',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'empNum': {
            'field': 'emp_num',
            'type': Sequelize.STRING(20),
            'allowNull': false
        },
        'headImg': {
            'field': 'head_img',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'name': {
            'field': 'name',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'tel': {
            'field': 'tel',
            'type': Sequelize.STRING(20),
            'allowNull': false
        },
        'email': {
            'field': 'email',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'sex': {
            'field': 'sex',
            'type': Sequelize.INTEGER,
            'allowNull': false
        },
        'departFirst': {
            'field': 'depart_first',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'departSecond': {
            'field': 'depart_second',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'departThird': {
            'field': 'depart_third',
            'type': Sequelize.STRING(100),
            'allowNull': false
        },
        'post': {
            'field': 'post',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'province': {
            'field': 'province',
            'type': Sequelize.STRING(100),
            'allowNull': false
        },
        'city': {
            'field': 'city',
            'type': Sequelize.STRING(100),
            'allowNull': false
        },
        'account': {
            'field': 'account',
            'type': Sequelize.STRING(100),
            'allowNull': false
        },
        'wxNum': {
            'field': 'wx_num',
            'type': Sequelize.STRING(100),
            'allowNull': false
        },
        'create_time': {
            'field': 'create_time',
            'type': Sequelize.STRING(20),
            'allowNull': false
        },
        'synTime': {
            'field': 'syn_time',
            'type': Sequelize.STRING(20),
            'allowNull': false
        },
        'filed1': {
            'field': 'filed1',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'filed2': {
            'field': 'filed2',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'filed3': {
            'field': 'filed3',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'filed4': {
            'field': 'filed4',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'filed5': {
            'field': 'filed5',
            'type': Sequelize.STRING(200),
            'allowNull': false
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'memeber_respresent',
        timestamps: false//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)



//获取积分记录
var sweepUserModule = sequelize.define(
    'sweepUser',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.STRING(32), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'userCode': {
            'field': 'user_code',
            'type': Sequelize.STRING(80),
            'allowNull': true
        },
        'userName': {
            'field': 'user_name',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'score': {
            'field': 'score',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'createTime': {
            'field': 'create_time',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field1': {
            'field': 'field1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field2': {
            'field': 'field2',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field3': {
            'field': 'field3',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field4': {
            'field': 'field4',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field5': {
            'field': 'field5',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }

    },
    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'sweep_user',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
);

//获取积分记录
var sweepScoreLogModule = sequelize.define(
    'sweepScoreLog',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.STRING(32), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'userId': {
            'field': 'user_id',
            'type': Sequelize.STRING(80),
            'allowNull': true
        },
        'type': {
            'field': 'type',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'score': {
            'field': 'score',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'remark': {
            'field': 'remark',
            'type': Sequelize.STRING(80),
            'allowNull': true
        },
        'createTime': {
            'field': 'create_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'field1': {
            'field': 'field1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field2': {
            'field': 'field2',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field3': {
            'field': 'field3',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field4': {
            'field': 'field4',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'field5': {
            'field': 'field5',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },
    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'sweep_score_log',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
);
//会员管理
// var memberModule=sequelize.define(
//     'member',
//     {
//         'id':{//与数据库表字段对应的模块字段
//             'field':'id',//数据库表的字段
//             'type': Sequelize.STRING(32), 'primaryKey': true,
//             'allowNull': false,
//             'unique': true
//         },
//         'openId':{
//             'field':'open_id',
//             'type': Sequelize.STRING(32),
//             'allowNull': false
//         },
//         'name':{
//             'field':'name',
//             'type': Sequelize.STRING(32),
//             'allowNull': false
//         },
//         'tel':{
//             'field':'tel',
//             'type': Sequelize.STRING(20),
//             'allowNull': true
//         },
//         'email':{
//             'field':'email',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'sex':{
//             'field':'sex',
//             'type': Sequelize.INTEGER,
//             'allowNull': true
//         },
//         'type':{
//             'field':'type',
//             'type': Sequelize.INTEGER,
//             'allowNull': true
//         },
//         'province':{
//             'field':'province',
//             'type': Sequelize.STRING(50),
//             'allowNull': true
//         },
//         'city':{
//             'field':'city',
//             'type': Sequelize.STRING(50),
//             'allowNull': true
//         },
//         'hospitalName':{
//             'field':'hospital_name',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'hospitalOffices':{
//             'field':'hospital_offices',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'filed1':{
//             'field':'filed1',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'filed2':{
//             'field':'filed2',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'filed3':{
//             'field':'filed3',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//          'filed4':{
//              'field':'filed4',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'filed5':{
//             'field':'filed5',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'createTime':{
//             'field':'create_time',
//             'type': Sequelize.STRING(20),
//             'allowNull': true
//         },
//         'filed6':{
//             'field':'filed6',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'filed7':{
//             'field':'filed7',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'filed8':{
//             'field':'filed8',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'filed9':{
//             'field':'filed9',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         },
//         'filed10':{
//             'field':'filed10',
//             'type': Sequelize.STRING(100),
//             'allowNull': true
//         }
//     },
//     {
//         'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
//         'tableName': 'member',
//         timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
//     }
// );



//MET点播
var metVideoMenuModule = sequelize.define(
    'metVideo',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'title': {
            'field': 'title',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'picUrl': {
            'field': 'pic_url',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'url': {
            'field': 'url',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'metSortId': {
            'field': 'met_sort_id',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'metSortTitle': {
            'field': 'met_sort_title',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'createTime': {
            'field': 'create_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'met_video',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)
var metSortMenuModule = sequelize.define(
    'metSort',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'sortTitle': {
            'field': 'sort_title',
            'type': Sequelize.STRING(100),
            'allowNull': false
        },
        'createTime': {
            'field': 'create_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'met_sort',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

metVideoMenuModule.belongsTo(metSortMenuModule, { foreignKey: 'metSortId' });
metSortMenuModule.hasMany(metVideoMenuModule);



//权限管理
//角色菜单管理
var powerRoleMenuModule = sequelize.define(
    'powerRoleMenu',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.STRING(60), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'menuId': {
            'field': 'power_menu_id',
            'type': Sequelize.STRING(60),
            'allowNull': false
        },
        'roleId': {
            'field': 'role_id',
            'type': Sequelize.STRING(60),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'power_role_menu',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

//角色管理
var powerRoleModule = sequelize.define(
    'powerRole',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.STRING(60), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'parentId': {
            'field': 'parent_id',
            'type': Sequelize.STRING(60),
            'allowNull': false
        },
        'roleName': {
            'field': 'role_name',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'remark': {
            'field': 'remark',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'state': {
            'field': 'state',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'updateTime': {
            'field': 'update_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'updateUserId': {
            'field': 'update_user_id',
            'type': Sequelize.STRING(32),
            'allowNull': true
        },
        'updateUserName': {
            'field': 'update_user_name',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'column01': {
            'field': 'column01',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'column02': {
            'field': 'column02',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'power_role',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)
//菜单管理
var powerMenuModule = sequelize.define(
    'powerMenu',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'parentId': {
            'field': 'power_menu_id',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'menuName': {
            'field': 'menu_name',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'icon': {
            'field': 'icon',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'url': {
            'field': 'url',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'state': {
            'field': 'state',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'code': {
            'field': 'code',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'updateTime': {
            'field': 'update_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'updateUserId': {
            'field': 'update_user_id',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'updateUserName': {
            'field': 'update_user_name',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'column01': {
            'field': 'column01',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'column02': {
            'field': 'column02',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'power_menu',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

//菜单2
var menuModule = sequelize.define(
    'menu',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'id',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'parentId': {
            'field': 'power_menu_id',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'menuName': {
            'field': 'menu_name',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'icon': {
            'field': 'icon',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'url': {
            'field': 'url',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'state': {
            'field': 'state',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'code': {
            'field': 'code',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'updateTime': {
            'field': 'update_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'updateUserId': {
            'field': 'update_user_id',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'updateUserName': {
            'field': 'update_user_name',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'column01': {
            'field': 'column01',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'column02': {
            'field': 'column02',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'power_menu',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)



//建立标签的模块，sequelize的增删改查都是基于该模块的喵
var answersLikedModule = sequelize.define(
    'answersLiked',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'courseId': {
            'field': 'COURSE_ID',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'memberId': {
            'field': 'MEMBER_ID',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATE_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed1': {
            'field': 'HFIELD1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed2': {
            'field': 'HFIELD2',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed3': {
            'field': 'HFIELD3',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed4': {
            'field': 'HFIELD4',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed5': {
            'field': 'HFIELD5',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_ANSWERS_LIKED',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

//建立标签的模块，sequelize的增删改查都是基于该模块的喵
var dictionaryModule = sequelize.define(
    'dictionary',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'types': {
            'field': 'TYPES',
            'type': Sequelize.INTEGER,
            'allowNull': false
        },
        'typeName': {
            'field': 'TYPE_NAME',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'codeId': {
            'field': 'CODE_ID',
            'type': Sequelize.INTEGER(50),
            'allowNull': true
        },
        'codeDesc': {
            'field': 'CODE_DESC',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'remark': {
            'field': 'REMARK',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'nums': {
            'field': 'NUMS',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'status': {
            'field': 'STATUS',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed1': {
            'field': 'HFIELD1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed2': {
            'field': 'HFIELD2',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed3': {
            'field': 'HFIELD3',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed4': {
            'field': 'HFIELD4',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed5': {
            'field': 'HFIELD5',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_DICTIONARY',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)


//建立百问百答评论的模块，sequelize的增删改查都是基于该模块的喵
var answersCommentModule = sequelize.define(
    'answersComment',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'answersId': {
            'field': 'ANSWERS_ID',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'memberId': {
            'field': 'MEMBER_ID',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'memberName': {
            'field': 'member_Name',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createUser': {
            'field': 'CREATE_USER',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATE_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed1': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed2': {
            'field': 'FILED2',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed3': {
            'field': 'FILED3',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed4': {
            'field': 'FILED4',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed5': {
            'field': 'FILED5',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_ANSWERS_COMMET',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)


//建立百问百答的模块，sequelize的增删改查都是基于该模块的喵
var answersModule = sequelize.define(
    'answers',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'title': {
            'field': 'TITLE',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'content': {
            'field': 'CONTENT',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'parentId': {
            'field': 'PARENTID',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATE_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createUser': {
            'field': 'CREATE_USER',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'adopt': {
            'field': 'ADOPT',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'softDel': {
            'field': 'SOFT_DEL',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'topTime': {
            'field': 'TOP_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'status': {
            'field': 'STATUS',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed1': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed2': {
            'field': 'FILED2',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed3': {
            'field': 'FILED3',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed4': {
            'field': 'FILED4',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed5': {
            'field': 'FILED5',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed6': {
            'field': 'FILED6',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed7': {
            'field': 'FILED7',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed8': {
            'field': 'FILED8',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed9': {
            'field': 'FILED9',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed10': {
            'field': 'FILED10',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_ANSWERS',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)




//建立评论的模块，sequelize的增删改查都是基于该模块的喵
var commentModule = sequelize.define(
    'comment',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'courseId': {
            'field': 'COURSE_ID',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'memberId': {
            'field': 'MEMBER_ID',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'memberPicture': {
            'field': 'MEMBER_PICTURE',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'memberContent': {
            'field': 'MEMBER_CONTENT',
            'type': Sequelize.STRING(1000),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATE_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'type': {
            'field': 'TYPE',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'filed1': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed2': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed3': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed4': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed5': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_COMMENT',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)


//建立收藏的模块，sequelize的增删改查都是基于该模块的喵
var collectionModule = sequelize.define(
    'collection',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'courseId': {
            'field': 'COURSE_ID',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'memberId': {
            'field': 'MEMBER_ID',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATE_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'type': {
            'field': 'TYPE',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'filed1': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed2': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed3': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed4': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed5': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_COLLECTION',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)
//建立点赞的模块，sequelize的增删改查都是基于该模块的喵
var likedModule = sequelize.define(
    'liked',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'courseId': {
            'field': 'COURSE_ID',
            'type': Sequelize.STRING(50),
            'allowNull': false
        },
        'memberId': {
            'field': 'MEMBER_ID',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATE_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'type': {
            'field': 'TYPE',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'filed1': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed2': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed3': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed4': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed5': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_LIKED',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

//建立MET直播的模块，sequelize的增删改查都是基于该模块的喵
var metLiveModule = sequelize.define(
    'metLive',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'liveTitle': {
            'field': 'TITLE',
            'type': Sequelize.STRING(400),
            'allowNull': false
        },
        'startTime': {
            'field': 'START_TIME',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'endTime': {
            'field': 'END_TIME',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'joinId': {
            'field': 'JOIN_ID',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'tokenId': {
            'field': 'token_id',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'URL': {
            'field': 'URL',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'ccdtProject': {
            'field': 'CCDT_PROJECT',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'is_ccdt': {
            'field': 'IS_CCDT',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'remark': {
            'field': 'REMARK',
            'type': Sequelize.STRING(500),
            'allowNull': true
        },
        'parentId': {
            'field': 'PARENT_ID',
            'type': Sequelize.STRING(32),
            'allowNull': true
        },
        'closeTime': {
            'field': 'CLOSE_TIME',
            'type': Sequelize.STRING(20),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'MET_LIVE',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

//建立QCC日志的模块，sequelize的增删改查都是基于该模块的喵
var logModule = sequelize.define(
    'logs',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'logTitle': {
            'field': 'TITLE',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'memberId': {
            'field': 'MEMBER_ID',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATE_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed1': {
            'field': 'FILED1',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed2': {
            'field': 'FILED2',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'filed3': {
            'field': 'FILED3',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_LOG',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)




//建立QCC新闻表的模块，sequelize的增删改查都是基于该模块的喵
var newsModule = sequelize.define(
    'news',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'nTitle': {
            'field': 'TITLE',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'nType': {
            'field': 'N_TYPE',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'nAbstract': {
            'field': 'ABSTRACT',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'url': {
            'field': 'URL',
            'type': Sequelize.STRING(1000),
            'allowNull': true
        },
        'pUrl': {
            'field': 'PICTURE_URL',
            'type': Sequelize.STRING(500),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATETIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createeUser': {
            'field': 'CREATEUSER',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'softDel': {
            'field': 'SOFTDEL',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'topTime': {
            'field': 'TOP_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_NEWS',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

//建立QCC大讲堂的模块，sequelize的增删改查都是基于该模块的喵
var classModule = sequelize.define(
    'class',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'cTitle': {
            'field': 'TITLE',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'cType': {
            'field': 'C_TYPE',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'cAbstract': {
            'field': 'ABSTRACT',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'url': {
            'field': 'URL',
            'type': Sequelize.STRING(1000),
            'allowNull': true
        },
        'pUrl': {
            'field': 'PICTURE_URL',
            'type': Sequelize.STRING(500),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATETIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createeUser': {
            'field': 'CREATEUSER',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'topTime': {
            'field': 'TOP_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'softDel': {
            'field': 'SOFTDEL',
            'type': Sequelize.INTEGER,
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_CLASSROOM',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

//建立QCC分享会的模块，sequelize的增删改查都是基于该模块的喵
var discussModule = sequelize.define(
    'discuss',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'dTitle': {
            'field': 'TITLE',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'dType': {
            'field': 'D_TYPE',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'dAbstract': {
            'field': 'ABSTRACT',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'url': {
            'field': 'URL',
            'type': Sequelize.STRING(1000),
            'allowNull': true
        },
        'pUrl': {
            'field': 'PICTURE_URL',
            'type': Sequelize.STRING(500),
            'allowNull': true
        },
        'videoUrl': {
            'field': 'VIDEO_URL',
            'type': Sequelize.STRING(500),
            'allowNull': true
        },
        'createTime': {
            'field': 'CREATETIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'createeUser': {
            'field': 'CREATEUSER',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'topTime': {
            'field': 'TOP_TIME',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'softDel': {
            'field': 'SOFTDEL',
            'type': Sequelize.INTEGER,
            'allowNull': true
        }
    },

    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'QCC_DISCUSS',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
    }
)

//创建QCC管理员模块，
var userModule = sequelize.define(
    'users',
    {
        'id': {//与数据库表字段对应的模块字段
            'field': 'ID',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'loginName': {
            'field': 'LOGIN_NAME',
            'type': Sequelize.STRING(200),
            'allowNull': false
        },
        'userName': {
            'field': 'USER_NAME',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'passWord': {
            'field': 'PASSWORD',
            'type': Sequelize.STRING(200),
            'allowNull': true
        },
        'mobilePowerState': {
            'field': 'mobile_power_state',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'department': {
            'field': 'department',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'jobNumber': {
            'field': 'job_number',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'email': {
            'field': 'email',
            'type': Sequelize.STRING(50),
            'allowNull': true
        },
        'tel': {
            'field': 'tel',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'sex': {
            'field': 'sex',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'state': {
            'field': 'state',
            'type': Sequelize.INTEGER,
            'allowNull': true
        },
        'loginTime': {
            'field': 'login_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'updateTime': {
            'field': 'update_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'updateUserId': {
            'field': 'update_user_id',
            'type': Sequelize.STRING(32),
            'allowNull': true
        },
        'updateUserName': {
            'field': 'update_user_name',
            'type': Sequelize.STRING(20),
            'allowNull': true
        },
        'powerRoleId': {
            'field': 'power_role_id',
            'type': Sequelize.STRING(60),
            'allowNull': true
        }
    },
    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'POWER_USER',
        timestamps: false,
    })

//微信信息表
var wxUsersModule = sequelize.define(
    'WxUsers',
    {
        'openId': {//与数据库表字段对应的模块字段
            'field': 'open_id',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'nickName': {
            'field': 'nick_name',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'headImgurl': {
            'field': 'head_imgurl',
            'type': Sequelize.STRING(200),
            'allowNull': true
        }
    },
    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'wx_users',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true

    }
)

//加载会员模块
var memberModule = require('../models/member')(sequelize);

//加载图文表
var articleModule = require('../models/article')(sequelize);

//加载病例表
var bingliModule = require('../models/bingli')(sequelize);

//加载点击记录表
var clickLogModule = require('../models/clickLog')(sequelize);

//加载评论表
var commentLogModule = require('../models/commentLog')(sequelize);

//加载文献表
var literatureModule = require('../models/literature')(sequelize);

//加载文献申请表
var literatureApplicationLogModule = require('../models/literatureApplicationLog')(sequelize);

//加载文献表
var liveModule = require('../models/live')(sequelize);

//加载查询记录表
var serachLogModule = require('../models/serachLog')(sequelize);

//加载转发记录表
var shareLogModule = require('../models/shareLog')(sequelize);

//加载报名记录表
var signupLogModule = require('../models/signupLog')(sequelize);

//加载模块点击记录表
var sortClickLogModule = require('../models/sortClickLog')(sequelize);

//加载订阅表
var sortSubscribeLogModule = require('../models/sortSubscribeLog')(sequelize);

//加载视频表
var videoModule = require('../models/video')(sequelize);

//加载字典表
var dictionaryModule = require('../models/dictionary')(sequelize);


var integralRecordModule = require('../models/integralRecord')(sequelize);


//会议签到
//问卷表
var qdWjModule = require('../models/qdwj')(sequelize);

//问卷图文表
var qdWjArticleModule = require('../models/qdwjarticle')(sequelize);

//问卷的问题表
var qdWjQuestionModule = require('../models/qdwjquestion')(sequelize);

//问卷的问题选择题
var qdWjCheckModule = require('../models/qdwjcheck')(sequelize);

//auth根据type跳转路径表
var jwytAuthModule = require('../models/jwytauth')(sequelize);

//二维码表
var qdQrModule = require('../models/qdqr')(sequelize);

//回答问卷记录表
var qdWjLogModule = require('../models/qdwjlog')(sequelize);

//会议表
var qdMeetModule = require('../models/qdmeet')(sequelize);

//客户表
var memberMeetModule = require('../models/membermeet')(sequelize);

//公众号表
var wxPublicModule = require('../models/wxPublic')(sequelize);

//评分会议管理
var pfMeetModule = require('../models/pfmeet')(sequelize);

//评分参会人员管理
var pfMemberModule = require('../models/pfmember')(sequelize);

//评分分类
var pfQuestionModule = require('../models/pfquestion')(sequelize);

//评分问题
var pfCheckModule = require('../models/pfcheck')(sequelize);

//评分记录表
var pfLogModule = require('../models/pflog')(sequelize);

var pfTotalScoreModule = require('../models/pftotalscore')(sequelize);


//选手与总积分建立关系
pfTotalScoreModule.belongsTo(pfMemberModule, { foreignKey: 'playerId', targetKey: 'id' });
pfMemberModule.hasMany(pfTotalScoreModule, { foreignKey: 'playerId' });


userModule.belongsTo(powerRoleModule, { foreignKey: 'powerRoleId' });
powerRoleModule.hasMany(userModule);


menuModule.belongsTo(powerMenuModule, { foreignKey: 'parentId' });
powerMenuModule.hasMany(menuModule);

powerRoleMenuModule.belongsTo(powerMenuModule, { foreignKey: 'menuId' });
powerMenuModule.hasMany(powerRoleMenuModule);

memberModule.belongsTo(memberRespresentModule, { foreignKey: 'filed8', targetKey: 'userId' });
memberRespresentModule.hasMany(memberModule, { foreignKey: 'filed8' });

memberModule.belongsTo(wxUsersModule, { foreignKey: 'open_id' });
wxUsersModule.hasOne(memberModule, { foreignKey: 'open_id' });

memberRespresentModule.belongsTo(departmentModule, { foreignKey: 'filed4', targetKey: 'id' });
departmentModule.hasMany(memberRespresentModule, { foreignKey: 'filed4' });

//评论列表与会员关联
commentLogModule.belongsTo(memberModule, { foreignKey: 'memberId', targetKey: 'id' });
memberModule.hasMany(commentLogModule, { foreignKey: 'memberId' });


//后台
videoModule.belongsTo(dictionaryModule, { foreignKey: 'type', targetKey: 'codeId' });
dictionaryModule.hasMany(videoModule, { foreignKey: 'type' });

//报名记录与会员表关联
signupLogModule.belongsTo(memberModule, { foreignKey: 'memberId', targetKey: 'id' });
memberModule.hasMany(signupLogModule, { foreignKey: 'memberId' });

//报名记录与直播的关联
signupLogModule.belongsTo(liveModule, { foreignKey: 'liveId', targetKey: 'id' });
liveModule.hasMany(signupLogModule, { foreignKey: 'liveId' });

//栏目点击记录与会员表关联
sortClickLogModule.belongsTo(memberModule, { foreignKey: 'memberId', targetKey: 'id' });
memberModule.hasMany(sortClickLogModule, { foreignKey: 'memberId' });

//栏目点击记录与字典表关联
sortClickLogModule.belongsTo(dictionaryModule, { foreignKey: 'sortId', targetKey: 'codeId' });
dictionaryModule.hasMany(sortClickLogModule, { foreignKey: 'sortId' });


//栏目订阅记录与会员表关联
sortSubscribeLogModule.belongsTo(memberModule, { foreignKey: 'memberId', targetKey: 'id' });
memberModule.hasMany(sortSubscribeLogModule, { foreignKey: 'memberId' });

//栏目订阅记录与字典表关联
sortSubscribeLogModule.belongsTo(dictionaryModule, { foreignKey: 'item', targetKey: 'codeId' });
dictionaryModule.hasMany(sortSubscribeLogModule, { foreignKey: 'item' });


//栏目订阅记录与会员表关联
shareLogModule.belongsTo(memberModule, { foreignKey: 'memberId', targetKey: 'id' });
memberModule.hasMany(shareLogModule, { foreignKey: 'memberId' });

//栏目订阅记录与字典表关联
shareLogModule.belongsTo(dictionaryModule, { foreignKey: 'item', targetKey: 'codeId' });
dictionaryModule.hasMany(shareLogModule, { foreignKey: 'item' });

//点击量与字典表的关联
clickLogModule.belongsTo(dictionaryModule, { foreignKey: 'sort', targetKey: 'codeId' });
dictionaryModule.hasMany(clickLogModule, { foreignKey: 'sort' });

//点击量与人员表
clickLogModule.belongsTo(memberModule, { foreignKey: 'memberId', targetKey: 'id' });
memberModule.hasMany(clickLogModule, { foreignKey: 'memberId' });

//视频点击量与课程表
clickLogModule.belongsTo(videoModule, { foreignKey: 'titleId', targetKey: 'id' });
videoModule.hasMany(clickLogModule, { foreignKey: 'titleId' });

//视频分享课程表
shareLogModule.belongsTo(videoModule, { foreignKey: 'titleId', targetKey: 'id' });
videoModule.hasMany(shareLogModule, { foreignKey: 'titleId' });

//病例分享量
shareLogModule.belongsTo(bingliModule, { foreignKey: 'titleId', targetKey: 'id' });
bingliModule.hasMany(shareLogModule, { foreignKey: 'titleId' });

//病例点击量
clickLogModule.belongsTo(bingliModule, { foreignKey: 'titleId', targetKey: 'id' });
bingliModule.hasMany(clickLogModule, { foreignKey: 'titleId' });

//图文点击量
clickLogModule.belongsTo(articleModule, { foreignKey: 'titleId', targetKey: 'id' });
articleModule.hasMany(clickLogModule, { foreignKey: 'titleId' });

//图文点击量字典表关联
clickLogModule.belongsTo(dictionaryModule, { foreignKey: 'sort', targetKey: 'codeId' });
dictionaryModule.hasMany(clickLogModule, { foreignKey: 'sort' });


//文献与字典表关联
literatureModule.belongsTo(dictionaryModule, { foreignKey: 'type', targetKey: 'codeId' });
dictionaryModule.hasMany(literatureModule, { foreignKey: 'type' });


//问卷与问题表建立关系
qdWjQuestionModule.belongsTo(qdWjModule, { foreignKey: 'wjId', targetKey: 'id' });
qdWjModule.hasMany(qdWjQuestionModule, { foreignKey: 'wjId' });

//问卷问题表与选项表建立关系
qdWjCheckModule.belongsTo(qdWjQuestionModule, { foreignKey: 'questionId', targetKey: 'id' });
qdWjQuestionModule.hasMany(qdWjCheckModule, { foreignKey: 'questionId' });

//二维码表与图文表建立关系
qdWjArticleModule.belongsTo(qdQrModule, { foreignKey: 'qrCode', targetKey: 'qrCode' });
qdQrModule.hasMany(qdWjArticleModule, { foreignKey: 'qrCode' });

//二维码表与问卷表建立关系
qdQrModule.belongsTo(qdWjModule, { foreignKey: 'wjId', targetKey: 'id' });
qdWjModule.hasMany(qdQrModule, { foreignKey: 'wjId' });

//图文表与页面跳转表建立关系
qdWjArticleModule.belongsTo(jwytAuthModule, { foreignKey: 'type', targetKey: 'type' });
jwytAuthModule.hasMany(qdWjArticleModule, { foreignKey: 'type' });

//评分会议与问题的建立关系
pfQuestionModule.belongsTo(pfMeetModule, { foreignKey: 'meetNum', targetKey: 'meetNum' });
pfMeetModule.hasMany(pfQuestionModule, { foreignKey: 'meetNum' });

//评分分类与评分内容建立关系
pfCheckModule.belongsTo(pfQuestionModule, { foreignKey: 'questionId', targetKey: 'id' });
pfQuestionModule.hasMany(pfCheckModule, { foreignKey: 'questionId' });

var seqModule = function () {
    this.sequelize = sequelize;
    this.answersLikedModule = answersLikedModule;
    this.dictionaryModule = dictionaryModule;
    this.answersCommentModule = answersCommentModule;
    this.answersModule = answersModule;
    this.commentModule = commentModule;
    this.collectionModule = collectionModule;
    this.likedModule = likedModule;
    this.metLiveModule = metLiveModule;
    this.logModule = logModule;
    this.classModule = classModule;
    this.discussModule = discussModule;
    this.newsModule = newsModule;
    this.userModule = userModule;
    this.powerMenuModule = powerMenuModule;
    this.powerRoleMenuModule = powerRoleMenuModule;
    this.powerRoleModule = powerRoleModule;
    this.menuModule = menuModule;
    this.metSortMenuModule = metSortMenuModule;
    this.metVideoMenuModule = metVideoMenuModule;
    this.memberModule = memberModule;
    this.memberRespresentModule = memberRespresentModule;
    this.departmentModule = departmentModule;
    this.wxUsersModule = wxUsersModule;
    this.sweepUserModule = sweepUserModule;
    this.sweepScoreLogModule = sweepScoreLogModule;

    this.articleModule = articleModule;
    this.bingliModule = bingliModule;
    this.clickLogModule = clickLogModule;
    this.commentLogModule = commentLogModule;
    this.literatureModule = literatureModule;
    this.literatureApplicationLogModule = literatureApplicationLogModule;
    this.liveModule = liveModule;
    this.serachLogModule = serachLogModule;
    this.shareLogModule = shareLogModule;
    this.signupLogModule = signupLogModule;
    this.sortClickLogModule = sortClickLogModule;
    this.sortSubscribeLogModule = sortSubscribeLogModule;
    this.videoModule = videoModule;
    this.dictionaryModule = dictionaryModule;
    this.integralRecordModule = integralRecordModule;

    this.qdWjModule = qdWjModule;
    this.qdWjArticleModule = qdWjArticleModule;
    this.qdWjQuestionModule = qdWjQuestionModule;
    this.qdWjCheckModule = qdWjCheckModule;
    this.jwytAuthModule = jwytAuthModule;
    this.qdQrModule = qdQrModule;
    this.qdWjLogModule = qdWjLogModule;
    this.qdMeetModule = qdMeetModule;
    this.memberMeetModule = memberMeetModule;
    this.wxPublicModule = wxPublicModule;


    this.pfMeetModule = pfMeetModule;
    this.pfMemberModule = pfMemberModule;
    this.pfQuestionModule = pfQuestionModule;
    this.pfCheckModule = pfCheckModule;
    this.pfLogModule = pfLogModule;
    this.pfTotalScoreModule = pfTotalScoreModule;
}


module.exports = seqModule;
